bldcfoc2 2.2.0
Loading...
Searching...
No Matches
bldcfoc2.h File Reference

This file contains API for BLDC FOC 2 Click Driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_i2c_master.h"
#include "drv_pwm.h"

Go to the source code of this file.

Data Structures

struct  bldcfoc2_t
 BLDC FOC 2 Click context object. More...
struct  bldcfoc2_cfg_t
 BLDC FOC 2 Click configuration object. More...

Macros

#define BLDCFOC2_REG_EEPROM_8   0x08
 BLDC FOC 2 register list .
#define BLDCFOC2_REG_EEPROM_9   0x09
#define BLDCFOC2_REG_EEPROM_10   0x0A
#define BLDCFOC2_REG_EEPROM_11   0x0B
#define BLDCFOC2_REG_EEPROM_12   0x0C
#define BLDCFOC2_REG_EEPROM_13   0x0D
#define BLDCFOC2_REG_EEPROM_14   0x0E
#define BLDCFOC2_REG_EEPROM_15   0x0F
#define BLDCFOC2_REG_EEPROM_16   0x10
#define BLDCFOC2_REG_EEPROM_17   0x11
#define BLDCFOC2_REG_EEPROM_18   0x12
#define BLDCFOC2_REG_EEPROM_19   0x13
#define BLDCFOC2_REG_EEPROM_20   0x14
#define BLDCFOC2_REG_EEPROM_21   0x15
#define BLDCFOC2_REG_EEPROM_22   0x16
#define BLDCFOC2_REG_EEPROM_23   0x17
#define BLDCFOC2_REG_EEPROM_24   0x18
#define BLDCFOC2_REG_EEPROM_25   0x19
#define BLDCFOC2_REG_EEPROM_26   0x1A
#define BLDCFOC2_REG_EEPROM_27   0x1B
#define BLDCFOC2_REG_EEPROM_28   0x1C
#define BLDCFOC2_REG_EEPROM_29   0x1D
#define BLDCFOC2_REG_EEPROM_30   0x1E
#define BLDCFOC2_REG_EEPROM_31   0x1F
#define BLDCFOC2_REG_EEPROM_32   0x20
#define BLDCFOC2_REG_EEPROM_33   0x21
#define BLDCFOC2_REG_EEPROM_34   0x22
#define BLDCFOC2_REG_EEPROM_35   0x23
#define BLDCFOC2_REG_EEPROM_36   0x24
#define BLDCFOC2_REG_EEPROM_37   0x25
#define BLDCFOC2_REG_EEPROM_38   0x26
#define BLDCFOC2_REG_EEPROM_39   0x27
#define BLDCFOC2_REG_EEPROM_40   0x28
#define BLDCFOC2_REG_EEPROM_41   0x29
#define BLDCFOC2_REG_EEPROM_42   0x2A
#define BLDCFOC2_REG_EEPROM_43   0x2B
#define BLDCFOC2_REG_EEPROM_44   0x2C
#define BLDCFOC2_REG_EEPROM_45   0x2D
#define BLDCFOC2_REG_EEPROM_46   0x2E
#define BLDCFOC2_REG_EEPROM_47   0x2F
#define BLDCFOC2_REG_EEPROM_48   0x30
#define BLDCFOC2_REG_EEPROM_49   0x31
#define BLDCFOC2_REG_EEPROM_50   0x32
#define BLDCFOC2_REG_EEPROM_51   0x33
#define BLDCFOC2_REG_EEPROM_52   0x34
#define BLDCFOC2_REG_EEPROM_53   0x35
#define BLDCFOC2_REG_EEPROM_54   0x36
#define BLDCFOC2_REG_EEPROM_55   0x37
#define BLDCFOC2_REG_EEPROM_56   0x38
#define BLDCFOC2_REG_EEPROM_57   0x39
#define BLDCFOC2_REG_EEPROM_58   0x3A
#define BLDCFOC2_REG_EEPROM_59   0x3B
#define BLDCFOC2_REG_EEPROM_60   0x3C
#define BLDCFOC2_REG_EEPROM_61   0x3D
#define BLDCFOC2_REG_EEPROM_62   0x3E
#define BLDCFOC2_REG_EEPROM_63   0x3F
#define BLDCFOC2_REG_EEPROM_CTRL   0xBF
#define BLDCFOC2_REG_EEPROM_ADDR   0xC0
#define BLDCFOC2_REG_EEPROM_DATA   0xC1
#define BLDCFOC2_REG_EEPROM_ACCESS   0xC4
#define BLDCFOC2_EEPROM_8   0x0047FF
 BLDC FOC 2 EEPROM default setting.
#define BLDCFOC2_EEPROM_9   0x0000FA
#define BLDCFOC2_EEPROM_10   0x0067FF
#define BLDCFOC2_EEPROM_11   0x000000
#define BLDCFOC2_EEPROM_12   0x007FF3
#define BLDCFOC2_EEPROM_13   0x000109
#define BLDCFOC2_EEPROM_14   0x000E2A
#define BLDCFOC2_EEPROM_15   0x006270
#define BLDCFOC2_EEPROM_16   0x00006C
#define BLDCFOC2_EEPROM_17   0x002457
#define BLDCFOC2_EEPROM_18   0x00DA0D
#define BLDCFOC2_EEPROM_19   0x007701
#define BLDCFOC2_EEPROM_20   0x003238
#define BLDCFOC2_EEPROM_21   0x000060
#define BLDCFOC2_EEPROM_22   0x006007
#define BLDCFOC2_EEPROM_23   0x00041E
#define BLDCFOC2_EEPROM_24   0x000006
#define BLDCFOC2_EEPROM_25   0x000014
#define BLDCFOC2_EEPROM_26   0x000012
#define BLDCFOC2_EEPROM_27   0x000000
#define BLDCFOC2_EEPROM_28   0x000DA1
#define BLDCFOC2_EEPROM_29   0x000011
#define BLDCFOC2_EEPROM_30   0x000000
#define BLDCFOC2_EEPROM_31   0x00007E
#define BLDCFOC2_EEPROM_32   0x000000
#define BLDCFOC2_EEPROM_33   0x000000
#define BLDCFOC2_EEPROM_34   0x000000
#define BLDCFOC2_EEPROM_35   0x000000
#define BLDCFOC2_EEPROM_36   0x000000
#define BLDCFOC2_EEPROM_37   0x000000
#define BLDCFOC2_EEPROM_38   0x000000
#define BLDCFOC2_EEPROM_39   0x000000
#define BLDCFOC2_EEPROM_40   0x000000
#define BLDCFOC2_EEPROM_41   0x000000
#define BLDCFOC2_EEPROM_42   0x000000
#define BLDCFOC2_EEPROM_43   0x000000
#define BLDCFOC2_EEPROM_44   0x000000
#define BLDCFOC2_EEPROM_45   0x000000
#define BLDCFOC2_EEPROM_46   0x000000
#define BLDCFOC2_EEPROM_47   0x000000
#define BLDCFOC2_EEPROM_48   0x000000
#define BLDCFOC2_EEPROM_49   0x000000
#define BLDCFOC2_EEPROM_50   0x000000
#define BLDCFOC2_EEPROM_51   0x000000
#define BLDCFOC2_EEPROM_52   0x000000
#define BLDCFOC2_EEPROM_53   0x000000
#define BLDCFOC2_EEPROM_54   0x000000
#define BLDCFOC2_EEPROM_55   0x000000
#define BLDCFOC2_EEPROM_56   0x000000
#define BLDCFOC2_EEPROM_57   0x000000
#define BLDCFOC2_EEPROM_58   0x000000
#define BLDCFOC2_EEPROM_59   0x000000
#define BLDCFOC2_EEPROM_60   0x000000
#define BLDCFOC2_EEPROM_61   0x000000
#define BLDCFOC2_EEPROM_62   0x000000
#define BLDCFOC2_EEPROM_63   0x000000
#define BLDCFOC2_EEPROM_CTRL_RD   0x000008
 BLDC FOC 2 EEPROM setting.
#define BLDCFOC2_EEPROM_CTRL_WR   0x000004
#define BLDCFOC2_EEPROM_CTRL_ER   0x000002
#define BLDCFOC2_EEPROM_CTRL_EN   0x000001
#define BLDCFOC2_EEPROM_ACCESS_LOCK   0x000000
#define BLDCFOC2_EEPROM_ACCESS_UNLOCK   0x000001
#define BLDCFOC2_EEPROM_DATA_CLEAR   0x000000
#define BLDCFOC2_EEPROM_SHADOW_OFFSET   64
#define BLDCFOC2_DIR_CCW   0
 BLDC FOC 2 direction setting.
#define BLDCFOC2_DIR_CW   1
#define BLDCFOC2_SPEED_MIN   10
 BLDC FOC 2 speed settings.
#define BLDCFOC2_SPEED_START   15
#define BLDCFOC2_SPEED_MAX   50
#define BLDCFOC2_SPEED_TO_DUTY   100
#define BLDCFOC2_PWM_FREQ   20000
 BLDC FOC 2 default PWM settings.
#define BLDCFOC2_PWM_ZERO_DUTY   0.0
#define BLDCFOC2_DEVICE_ADDRESS   0x55
 BLDC FOC 2 device address setting.
#define BLDCFOC2_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.

Enumerations

enum  bldcfoc2_return_value_t { BLDCFOC2_OK = 0 , BLDCFOC2_ERROR = -1 }
 BLDC FOC 2 Click return value data. More...

Functions

void bldcfoc2_cfg_setup (bldcfoc2_cfg_t *cfg)
 BLDC FOC 2 configuration object setup function.
err_t bldcfoc2_init (bldcfoc2_t *ctx, bldcfoc2_cfg_t *cfg)
 BLDC FOC 2 initialization function.
err_t bldcfoc2_default_cfg (bldcfoc2_t *ctx)
 BLDC FOC 2 default configuration function.
err_t bldcfoc2_write_reg (bldcfoc2_t *ctx, uint8_t reg, uint32_t data_in)
 BLDC FOC 2 write register function.
err_t bldcfoc2_read_reg (bldcfoc2_t *ctx, uint8_t reg, uint32_t *data_out)
 BLDC FOC 2 read register function.
err_t bldcfoc2_read_regs (bldcfoc2_t *ctx, uint8_t reg, uint32_t *data_out, uint8_t len)
 BLDC FOC 2 read multiple registers function.
err_t bldcfoc2_set_duty_cycle (bldcfoc2_t *ctx, float duty_cycle)
 BLDC FOC 2 set duty cycle function.
err_t bldcfoc2_pwm_stop (bldcfoc2_t *ctx)
 BLDC FOC 2 stop PWM function.
err_t bldcfoc2_pwm_start (bldcfoc2_t *ctx)
 BLDC FOC 2 start PWM function.
void bldcfoc2_pull_brake (bldcfoc2_t *ctx)
 BLDC FOC 2 pull brake function.
void bldcfoc2_release_brake (bldcfoc2_t *ctx)
 BLDC FOC 2 release brake function.
void bldcfoc2_set_direction (bldcfoc2_t *ctx, uint8_t dir)
 BLDC FOC 2 set direction function.
void bldcfoc2_switch_direction (bldcfoc2_t *ctx)
 BLDC FOC 2 switch direction function.
uint8_t bldcfoc2_get_fgo_pin (bldcfoc2_t *ctx)
 BLDC FOC 2 get FGO pin state function.
uint8_t bldcfoc2_get_fault_pin (bldcfoc2_t *ctx)
 BLDC FOC 2 get FAULT pin state function.
err_t bldcfoc2_eeprom_access_lock (bldcfoc2_t *ctx)
 BLDC FOC 2 EEPROM access lock function.
err_t bldcfoc2_eeprom_access_unlock (bldcfoc2_t *ctx)
 BLDC FOC 2 EEPROM access unlock function.
err_t bldcfoc2_eeprom_erase (bldcfoc2_t *ctx, uint8_t addr)
 BLDC FOC 2 EEPROM erase function.
err_t bldcfoc2_eeprom_write (bldcfoc2_t *ctx, uint8_t addr, uint32_t data_in)
 BLDC FOC 2 EEPROM write function.
err_t bldcfoc2_eeprom_read (bldcfoc2_t *ctx, uint8_t addr, uint32_t *data_out)
 BLDC FOC 2 EEPROM read function.
err_t bldcfoc2_eeprom_set_config (bldcfoc2_t *ctx)
 BLDC FOC 2 EEPROM default config function.

Detailed Description

This file contains API for BLDC FOC 2 Click Driver.

Enumeration Type Documentation

◆ bldcfoc2_return_value_t

BLDC FOC 2 Click return value data.

Predefined enum values for driver return values.

Enumerator
BLDCFOC2_OK 
BLDCFOC2_ERROR